package com.company.oa.workflow.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.company.oa.workflow.dto.document.DocumentDTO;
import com.company.oa.workflow.entity.document.Document;
import org.springframework.web.multipart.MultipartFile;

import java.util.Map;

public interface DocumentService extends IService<Document> {
    
    /**
     * 分页查询公文列表
     */
    IPage<Document> getPage(int page, int size, Document document);
    
    /**
     * 创建公文（草稿）
     */
    boolean createDocument(DocumentDTO documentDTO, Long userId);
    
    /**
     * 更新公文
     */
    boolean updateDocument(DocumentDTO documentDTO);
    
    /**
     * 提交公文
     */
    boolean submitDocument(Long id);
    
    /**
     * 取消公文
     */
    boolean cancelDocument(Long id);
    
    /**
     * 上传附件
     */
    String uploadAttachment(MultipartFile file);
    
    /**
     * 获取公文详情
     */
    Map<String, Object> getDocumentDetail(Long id);
    
    /**
     * 获取我的公文列表
     */
    IPage<Document> getMyDocuments(int page, int size, Long userId, Integer status);
    
    /**
     * 签发公文
     */
    boolean issueDocument(Long id, Long userId);
    
    /**
     * 归档公文
     */
    boolean archiveDocument(Long id);
    
    /**
     * 传阅公文
     */
    boolean circulateDocument(Long id, Long[] userIds);
} 